Micron Document
🎖️GitЯра🎖️


Displaying Raw • Download

app/src/main/java/com/geeksville/mesh/ui/message/components/MessageItem.kt ui_message_list (be3f882f) Text, 15.35 KB

T8b949e/*
* Copyright (c) 2025 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/

Tff7b72package T7ee787com.geeksville.mesh.ui.message.components

Tff7b72import T7ee787androidx.compose.foundation.background
Tff7b72import T7ee787androidx.compose.foundation.border
Tff7b72import T7ee787androidx.compose.foundation.clickable
Tff7b72import T7ee787androidx.compose.foundation.combinedClickable
Tff7b72import T7ee787androidx.compose.foundation.layout.Arrangement
Tff7b72import T7ee787androidx.compose.foundation.layout.Box
Tff7b72import T7ee787androidx.compose.foundation.layout.Column
Tff7b72import T7ee787androidx.compose.foundation.layout.Row
Tff7b72import T7ee787androidx.compose.foundation.layout.Spacer
Tff7b72import T7ee787androidx.compose.foundation.layout.fillMaxWidth
Tff7b72import T7ee787androidx.compose.foundation.layout.height
Tff7b72import T7ee787androidx.compose.foundation.layout.offset
Tff7b72import T7ee787androidx.compose.foundation.layout.padding
Tff7b72import T7ee787androidx.compose.foundation.layout.size
Tff7b72import T7ee787androidx.compose.foundation.layout.wrapContentSize
Tff7b72import T7ee787androidx.compose.foundation.shape.RoundedCornerShape
Tff7b72import T7ee787androidx.compose.material.icons.Icons
Tff7b72import T7ee787androidx.compose.material.icons.filled.Cloud
Tff7b72import T7ee787androidx.compose.material.icons.filled.FormatQuote
Tff7b72import T7ee787androidx.compose.material.icons.rounded.FormatQuote
Tff7b72import T7ee787androidx.compose.material3.Card
Tff7b72import T7ee787androidx.compose.material3.CardColors
Tff7b72import T7ee787androidx.compose.material3.CardDefaults
Tff7b72import T7ee787androidx.compose.material3.Icon
Tff7b72import T7ee787androidx.compose.material3.MaterialTheme
Tff7b72import T7ee787androidx.compose.material3.OutlinedCard
Tff7b72import T7ee787androidx.compose.material3.Text
Tff7b72import T7ee787androidx.compose.material3.contentColorFor
Tff7b72import T7ee787androidx.compose.runtime.Composable
Tff7b72import T7ee787androidx.compose.runtime.getValue
Tff7b72import T7ee787androidx.compose.runtime.mutableStateOf
Tff7b72import T7ee787androidx.compose.runtime.remember
Tff7b72import T7ee787androidx.compose.runtime.setValue
Tff7b72import T7ee787androidx.compose.ui.Alignment
Tff7b72import T7ee787androidx.compose.ui.Modifier
Tff7b72import T7ee787androidx.compose.ui.graphics.Color
Tff7b72import T7ee787androidx.compose.ui.res.stringResource
Tff7b72import T7ee787androidx.compose.ui.text.font.FontWeight
Tff7b72import T7ee787androidx.compose.ui.text.style.TextOverflow
Tff7b72import T7ee787androidx.compose.ui.tooling.preview.PreviewLightDark
Tff7b72import T7ee787androidx.compose.ui.unit.dp
Tff7b72import T7ee787androidx.room.util.newStringBuilder
Tff7b72import T7ee787com.geeksville.mesh.MeshProtos
Tff7b72import T7ee787com.geeksville.mesh.MessageStatus
Tff7b72import T7ee787com.geeksville.mesh.R
Tff7b72import T7ee787com.geeksville.mesh.database.entity.Reaction
Tff7b72import T7ee787com.geeksville.mesh.model.Message
Tff7b72import T7ee787com.geeksville.mesh.model.Node
Tff7b72import T7ee787com.geeksville.mesh.model.getStringResFrom
Tff7b72import T7ee787com.geeksville.mesh.ui.common.components.EmojiPickerDialog
Tff7b72import T7ee787com.geeksville.mesh.ui.common.components.MDText
Tff7b72import T7ee787com.geeksville.mesh.ui.common.preview.NodePreviewParameterProvider
Tff7b72import T7ee787com.geeksville.mesh.ui.common.theme.AppTheme
Tff7b72import T7ee787com.geeksville.mesh.ui.common.theme.MessageItemColors
Tff7b72import T7ee787com.geeksville.mesh.ui.node.components.NodeChip
Tff7b72import T7ee787com.geeksville.mesh.ui.node.components.NodeMenuAction

Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffLongMethodTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffCyclomaticComplexMethodTa5d6ff"Tb4b4b4)
Tf0883e@Composable
Tff7b72internal Tff7b72fun Td2a8ffMessageItemTb4b4b4(
Te6edf3modifierTb4b4b4: Te6edf3Modifier Tff7b72= Te6edf3ModifierTb4b4b4,
Te6edf3nodeTb4b4b4: Te6edf3NodeTb4b4b4,
Te6edf3ourNodeTb4b4b4: Te6edf3NodeTb4b4b4,
Te6edf3messageTb4b4b4: Te6edf3MessageTb4b4b4,
Te6edf3selectedTb4b4b4: Tffa657BooleanTb4b4b4,
Te6edf3onReplyTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657Unit Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3sendReactionTb4b4b4: Tb4b4b4(Tffa657StringTb4b4b4) Tff7b72-Tff7b72> Tffa657Unit Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3onShowReactionsTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657Unit Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3emojisTb4b4b4: Te6edf3ListTff7b72<Te6edf3ReactionTff7b72> Tff7b72= Te6edf3emptyListTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3onActionTb4b4b4: Tb4b4b4(Te6edf3NodeMenuActionTb4b4b4) Tff7b72-Tff7b72> Tffa657Unit Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3onStatusClickTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657Unit Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3isConnectedTb4b4b4: Tffa657BooleanTb4b4b4,
Te6edf3onNavigateToOriginalMessageTb4b4b4: Tb4b4b4(Tffa657IntTb4b4b4) Tff7b72-Tff7b72> Tffa657Unit Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3showNodeInfoTb4b4b4: Tffa657BooleanTb4b4b4,
Tb4b4b4) Tff7b72= Te6edf3ColumnTb4b4b4(Te6edf3modifier Tff7b72= Te6edf3modifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3showMessageActionsDialog Tff7b72by Te6edf3remember Tb4b4b4{ Te6edf3mutableStateOfTb4b4b4(Tff7b72falseTb4b4b4) Tb4b4b4}
Tff7b72var Te6edf3showEmojiPickerDialog Tff7b72by Te6edf3remember Tb4b4b4{ Te6edf3mutableStateOfTb4b4b4(Tff7b72falseTb4b4b4) Tb4b4b4}

Tff7b72if Tb4b4b4(Te6edf3showMessageActionsDialogTb4b4b4) Tb4b4b4{
Te6edf3MessageActionsDialogTb4b4b4(
Te6edf3status Tff7b72= Tff7b72if Tb4b4b4(Te6edf3messageTb4b4b4.Te6edf3fromLocalTb4b4b4) Te6edf3messageTb4b4b4.Te6edf3status Tff7b72else Tff7b72nullTb4b4b4,
Te6edf3onDismiss Tff7b72= Tb4b4b4{ Te6edf3showMessageActionsDialog Tff7b72= Tff7b72false Tb4b4b4}Tb4b4b4,
Te6edf3onShowEmojiDialog Tff7b72= Tb4b4b4{ Te6edf3showEmojiPickerDialog Tff7b72= Tff7b72true Tb4b4b4}Tb4b4b4,
Te6edf3onClickReply Tff7b72= Tb4b4b4{ Te6edf3onReplyTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3onClickStatus Tff7b72= Te6edf3onStatusClickTb4b4b4,
Tb4b4b4)
Tb4b4b4}

Tff7b72if Tb4b4b4(Te6edf3showEmojiPickerDialogTb4b4b4) Tb4b4b4{
Te6edf3EmojiPickerDialogTb4b4b4(
Te6edf3onConfirm Tff7b72= Tb4b4b4{ Te6edf3selectedEmoji Tff7b72-Tff7b72>
Te6edf3showEmojiPickerDialog Tff7b72= Tff7b72false
Te6edf3sendReactionTb4b4b4(Te6edf3selectedEmojiTb4b4b4)
Tb4b4b4}Tb4b4b4,
Te6edf3onDismiss Tff7b72= Tb4b4b4{ Te6edf3showEmojiPickerDialog Tff7b72= Tff7b72false Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4}

Tff7b72val Te6edf3containsBel Tff7b72= Te6edf3messageTb4b4b4.Te6edf3textTb4b4b4.Te6edf3containsTb4b4b4('\Te6edf3u0007'Tb4b4b4)
Tff7b72val Te6edf3containerColor Tff7b72=
Te6edf3ColorTb4b4b4(
Tff7b72if Tb4b4b4(Te6edf3messageTb4b4b4.Te6edf3fromLocalTb4b4b4) Tb4b4b4{
Te6edf3ourNodeTb4b4b4.Te6edf3colorsTb4b4b4.Te6edf3second
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3colorsTb4b4b4.Te6edf3second
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4.Te6edf3copyTb4b4b4(Te6edf3alpha Tff7b72= T79c0ff0.2fTb4b4b4)
Tff7b72val Te6edf3cardColors Tff7b72=
Te6edf3CardDefaultsTb4b4b4.Te6edf3cardColorsTb4b4b4(Tb4b4b4)
Tb4b4b4.Te6edf3copyTb4b4b4(Te6edf3containerColor Tff7b72= Te6edf3containerColorTb4b4b4, Te6edf3contentColor Tff7b72= Te6edf3contentColorForTb4b4b4(Te6edf3containerColorTb4b4b4)Tb4b4b4)

Tff7b72if Tb4b4b4(Tff7b72!Te6edf3messageTb4b4b4.Te6edf3fromLocal Tff7b72&Tff7b72& Te6edf3showNodeInfoTb4b4b4) Tb4b4b4{
Te6edf3RowTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3paddingTb4b4b4(Te6edf3horizontal Tff7b72= T79c0ff8.Te6edf3dpTb4b4b4)Tb4b4b4,
Te6edf3horizontalArrangement Tff7b72= Te6edf3ArrangementTb4b4b4.Te6edf3spacedByTb4b4b4(T79c0ff8.Te6edf3dpTb4b4b4)Tb4b4b4,
Te6edf3verticalAlignment Tff7b72= Te6edf3AlignmentTb4b4b4.Te6edf3CenterVerticallyTb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3NodeChipTb4b4b4(Te6edf3node Tff7b72= Te6edf3nodeTb4b4b4, Te6edf3onAction Tff7b72= Te6edf3onActionTb4b4b4, Te6edf3isConnected Tff7b72= Te6edf3isConnectedTb4b4b4, Te6edf3isThisNode Tff7b72= Tff7b72falseTb4b4b4)

Te6edf3Column Tb4b4b4{
Te6edf3TextTb4b4b4(
Te6edf3text Tff7b72= Te6edf3withTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3userTb4b4b4) Tb4b4b4{ Te6edf3longName Tb4b4b4}Tb4b4b4,
Te6edf3overflow Tff7b72= Te6edf3TextOverflowTb4b4b4.Te6edf3EllipsisTb4b4b4,
Te6edf3maxLines Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3style Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3labelMediumTb4b4b4,
Tb4b4b4)

Te6edf3TextTb4b4b4(
Te6edf3text Tff7b72= Te6edf3withTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3userTb4b4b4) Tb4b4b4{ Te6edf3id Tb4b4b4}Tb4b4b4,
Te6edf3overflow Tff7b72= Te6edf3TextOverflowTb4b4b4.Te6edf3EllipsisTb4b4b4,
Te6edf3maxLines Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3style Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3labelSmallTb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}

Te6edf3BoxTb4b4b4(
Te6edf3modifier Tff7b72=
Te6edf3ModifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)
Tb4b4b4.Te6edf3combinedClickableTb4b4b4(
Te6edf3interactionSource Tff7b72= Tff7b72nullTb4b4b4,
Te6edf3indication Tff7b72= Tff7b72nullTb4b4b4,
Te6edf3onLongClick Tff7b72= Tb4b4b4{ Te6edf3showMessageActionsDialog Tff7b72= Tff7b72true Tb4b4b4}Tb4b4b4,
Te6edf3onClick Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4.Te6edf3paddingTb4b4b4(Te6edf3start Tff7b72= T79c0ff8.Te6edf3dpTb4b4b4, Te6edf3end Tff7b72= T79c0ff8.Te6edf3dpTb4b4b4, Te6edf3bottom Tff7b72= T79c0ff1T79c0ff6.Te6edf3dpTb4b4b4)Tb4b4b4,
Tb4b4b4) Tb4b4b4{
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffMagicNumberTa5d6ff"Tb4b4b4)
Te6edf3ColumnTb4b4b4(
Te6edf3modifier Tff7b72=
Te6edf3ModifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4.T79c0ff7T79c0ff5fTb4b4b4)
Tb4b4b4.Te6edf3alignTb4b4b4(Tff7b72if Tb4b4b4(Te6edf3messageTb4b4b4.Te6edf3fromLocalTb4b4b4) Te6edf3AlignmentTb4b4b4.Te6edf3CenterEnd Tff7b72else Te6edf3AlignmentTb4b4b4.Te6edf3CenterStartTb4b4b4)Tb4b4b4,
Te6edf3horizontalAlignment Tff7b72= Tff7b72if Tb4b4b4(Te6edf3messageTb4b4b4.Te6edf3fromLocalTb4b4b4) Te6edf3AlignmentTb4b4b4.Te6edf3End Tff7b72else Te6edf3AlignmentTb4b4b4.Te6edf3StartTb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3Box Tb4b4b4{
Te6edf3CardTb4b4b4(
Te6edf3modifier Tff7b72=
Te6edf3ModifierTb4b4b4.Te6edf3wrapContentSizeTb4b4b4(Tb4b4b4)
Tb4b4b4.Te6edf3thenTb4b4b4(
Tff7b72if Tb4b4b4(Te6edf3containsBelTb4b4b4) Tb4b4b4{
Te6edf3ModifierTb4b4b4.Te6edf3borderTb4b4b4(
T79c0ff2.Te6edf3dpTb4b4b4,
Te6edf3MessageItemColorsTb4b4b4.Te6edf3RedTb4b4b4,
Te6edf3shape Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3shapesTb4b4b4.Te6edf3mediumTb4b4b4,
Tb4b4b4)
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3Modifier
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4.Te6edf3alignTb4b4b4(Tff7b72if Tb4b4b4(Te6edf3messageTb4b4b4.Te6edf3fromLocalTb4b4b4) Te6edf3AlignmentTb4b4b4.Te6edf3CenterEnd Tff7b72else Te6edf3AlignmentTb4b4b4.Te6edf3CenterStartTb4b4b4)Tb4b4b4,
Te6edf3shape Tff7b72= Te6edf3RoundedCornerShapeTb4b4b4(T79c0ff2T79c0ff0.Te6edf3dpTb4b4b4)Tb4b4b4,
Te6edf3colors Tff7b72= Te6edf3cardColorsTb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3ColumnTb4b4b4(Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3paddingTb4b4b4(Te6edf3horizontal Tff7b72= T79c0ff1T79c0ff6.Te6edf3dpTb4b4b4, Te6edf3vertical Tff7b72= T79c0ff8.Te6edf3dpTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3OriginalMessageSnippetTb4b4b4(
Te6edf3message Tff7b72= Te6edf3messageTb4b4b4,
Te6edf3ourNode Tff7b72= Te6edf3ourNodeTb4b4b4,
Te6edf3cardColors Tff7b72= Te6edf3cardColorsTb4b4b4,
Te6edf3onNavigateToOriginalMessage Tff7b72= Te6edf3onNavigateToOriginalMessageTb4b4b4,
Tb4b4b4)

Te6edf3MDTextTb4b4b4(
Te6edf3text Tff7b72= Te6edf3messageTb4b4b4.Te6edf3textTb4b4b4,
Te6edf3style Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3bodyMediumTb4b4b4,
Te6edf3color Tff7b72= Te6edf3cardColorsTb4b4b4.Te6edf3contentColorTb4b4b4,
Tb4b4b4)

Te6edf3RowTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3paddingTb4b4b4(Te6edf3horizontal Tff7b72= T79c0ff4.Te6edf3dpTb4b4b4)Tb4b4b4.Te6edf3alignTb4b4b4(Te6edf3AlignmentTb4b4b4.Te6edf3EndTb4b4b4)Tb4b4b4,
Te6edf3verticalAlignment Tff7b72= Te6edf3AlignmentTb4b4b4.Te6edf3CenterVerticallyTb4b4b4,
Te6edf3horizontalArrangement Tff7b72= Te6edf3ArrangementTb4b4b4.Te6edf3spacedByTb4b4b4(T79c0ff4.Te6edf3dpTb4b4b4)Tb4b4b4,
Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3messageTb4b4b4.Te6edf3viaMqttTb4b4b4) Tb4b4b4{
Te6edf3IconTb4b4b4(
Te6edf3IconsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3CloudTb4b4b4,
Te6edf3contentDescription Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3via_mqttTb4b4b4)Tb4b4b4,
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3sizeTb4b4b4(T79c0ff1T79c0ff2.Te6edf3dpTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}

Te6edf3ReactionRowTb4b4b4(
Te6edf3reactions Tff7b72= Te6edf3emojisTb4b4b4,
Te6edf3onShowReactions Tff7b72= Te6edf3onShowReactionsTb4b4b4,
Te6edf3modifier Tff7b72=
Te6edf3ModifierTb4b4b4.Te6edf3alignTb4b4b4(Tff7b72if Tb4b4b4(Te6edf3messageTb4b4b4.Te6edf3fromLocalTb4b4b4) Te6edf3AlignmentTb4b4b4.Te6edf3TopStart Tff7b72else Te6edf3AlignmentTb4b4b4.Te6edf3TopEndTb4b4b4)
Tb4b4b4.Te6edf3offsetTb4b4b4(Te6edf3y Tff7b72= Tb4b4b4(Tff7b72-T79c0ff1T79c0ff4Tb4b4b4)Tb4b4b4.Te6edf3dpTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}

Te6edf3SpacerTb4b4b4(Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3heightTb4b4b4(T79c0ff4.Te6edf3dpTb4b4b4)Tb4b4b4)

Te6edf3RowTb4b4b4(Te6edf3verticalAlignment Tff7b72= Te6edf3AlignmentTb4b4b4.Te6edf3CenterVerticallyTb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3bottomLabel Tff7b72= Te6edf3buildString Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3containsBelTb4b4b4) Tb4b4b4{
Te6edf3appendTb4b4b4(Ta5d6ff"Ta5d6ff\Ta5d6ffuD83DTa5d6ff\Ta5d6ffuDD14Ta5d6ff"Tb4b4b4)
Te6edf3appendTb4b4b4(Ta5d6ff"Ta5d6ff · Ta5d6ff"Tb4b4b4)
Tb4b4b4}

Tff7b72ifTb4b4b4(Te6edf3messageTb4b4b4.Te6edf3fromLocalTb4b4b4) Tb4b4b4{
Te6edf3appendTb4b4b4(Te6edf3stringResourceTb4b4b4(Te6edf3messageTb4b4b4.Te6edf3getStatusStringResTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3secondTb4b4b4)Tb4b4b4)
Te6edf3appendTb4b4b4(Ta5d6ff"Ta5d6ff · Ta5d6ff"Tb4b4b4)
Tb4b4b4}

Te6edf3appendTb4b4b4(Te6edf3messageTb4b4b4.Te6edf3timeTb4b4b4)
Tb4b4b4}

Te6edf3TextTb4b4b4(Te6edf3text Tff7b72= Te6edf3bottomLabelTb4b4b4, Te6edf3style Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3labelSmallTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}

Tf0883e@Composable
Tff7b72private Tff7b72fun Td2a8ffOriginalMessageSnippetTb4b4b4(
Te6edf3messageTb4b4b4: Te6edf3MessageTb4b4b4,
Te6edf3ourNodeTb4b4b4: Te6edf3NodeTb4b4b4,
Te6edf3cardColorsTb4b4b4: Te6edf3CardColors Tff7b72= Te6edf3CardDefaultsTb4b4b4.Te6edf3cardColorsTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3onNavigateToOriginalMessageTb4b4b4: Tb4b4b4(Tffa657IntTb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3originalMessage Tff7b72= Te6edf3messageTb4b4b4.Te6edf3originalMessage
Tff7b72if Tb4b4b4(Te6edf3originalMessage Tff7b72!Tff7b72= Tff7b72null Tff7b72&Tff7b72& Te6edf3originalMessageTb4b4b4.Te6edf3packetId Tff7b72!Tff7b72= T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3originalMessageNode Tff7b72= Tff7b72if Tb4b4b4(Te6edf3originalMessageTb4b4b4.Te6edf3fromLocalTb4b4b4) Te6edf3ourNode Tff7b72else Te6edf3originalMessageTb4b4b4.Te6edf3node
Te6edf3OutlinedCardTb4b4b4(
Te6edf3modifier Tff7b72=
Te6edf3ModifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3paddingTb4b4b4(T79c0ff4.Te6edf3dpTb4b4b4)Tb4b4b4.Te6edf3clickable Tb4b4b4{
Te6edf3onNavigateToOriginalMessageTb4b4b4(Te6edf3originalMessageTb4b4b4.Te6edf3packetIdTb4b4b4)
Tb4b4b4}Tb4b4b4,
Te6edf3colors Tff7b72= Te6edf3cardColorsTb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3RowTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3paddingTb4b4b4(Te6edf3horizontal Tff7b72= T79c0ff4.Te6edf3dpTb4b4b4)Tb4b4b4,
Te6edf3verticalAlignment Tff7b72= Te6edf3AlignmentTb4b4b4.Te6edf3CenterVerticallyTb4b4b4,
Te6edf3horizontalArrangement Tff7b72= Te6edf3ArrangementTb4b4b4.Te6edf3spacedByTb4b4b4(T79c0ff4.Te6edf3dpTb4b4b4)Tb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3IconTb4b4b4(
Te6edf3IconsTb4b4b4.Te6edf3RoundedTb4b4b4.Te6edf3FormatQuoteTb4b4b4,
Te6edf3contentDescription Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3replyTb4b4b4)Tb4b4b4, T8b949e// Add to strings.xml
Tb4b4b4)
Te6edf3TextTb4b4b4(
Te6edf3text Tff7b72= Te6edf3originalMessageNodeTb4b4b4.Te6edf3userTb4b4b4.Te6edf3shortNameTb4b4b4,
Te6edf3style Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3labelMediumTb4b4b4,
Te6edf3fontWeight Tff7b72= Te6edf3FontWeightTb4b4b4.Te6edf3BoldTb4b4b4,
Te6edf3maxLines Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3overflow Tff7b72= Te6edf3TextOverflowTb4b4b4.Te6edf3EllipsisTb4b4b4,
Tb4b4b4)
Te6edf3TextTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3weightTb4b4b4(T79c0ff1fTb4b4b4, Te6edf3fill Tff7b72= Tff7b72trueTb4b4b4)Tb4b4b4,
Te6edf3text Tff7b72= Te6edf3originalMessageTb4b4b4.Te6edf3textTb4b4b4, T8b949e// Should not be null if isAReply is true
Te6edf3style Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3bodySmallTb4b4b4,
Te6edf3maxLines Tff7b72= T79c0ff1Tb4b4b4, T8b949e// Keep snippet brief
Te6edf3overflow Tff7b72= Te6edf3TextOverflowTb4b4b4.Te6edf3EllipsisTb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}

Tf0883e@PreviewLightDark
Tf0883e@Composable
Tff7b72private Tff7b72fun Td2a8ffMessageItemPreviewTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3sent Tff7b72=
Te6edf3MessageTb4b4b4(
Te6edf3text Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3sample_messageTb4b4b4)Tb4b4b4,
Te6edf3time Tff7b72= Ta5d6ff"Ta5d6ff10:00Ta5d6ff"Tb4b4b4,
Te6edf3fromLocal Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3DELIVEREDTb4b4b4,
Te6edf3snr Tff7b72= T79c0ff2T79c0ff0.5fTb4b4b4,
Te6edf3rssi Tff7b72= T79c0ff9T79c0ff0Tb4b4b4,
Te6edf3hopsAway Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3uuid Tff7b72= T79c0ff1LTb4b4b4,
Te6edf3receivedTime Tff7b72= Te6edf3SystemTb4b4b4.Te6edf3currentTimeMillisTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3node Tff7b72= Te6edf3NodePreviewParameterProviderTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3mickeyMouseTb4b4b4,
Te6edf3read Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3routingError Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3packetId Tff7b72= T79c0ff4T79c0ff5T79c0ff4T79c0ff5Tb4b4b4,
Te6edf3emojis Tff7b72= Te6edf3listOfTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3replyId Tff7b72= Tff7b72nullTb4b4b4,
Te6edf3viaMqtt Tff7b72= Tff7b72falseTb4b4b4,
Tb4b4b4)
Tff7b72val Te6edf3received Tff7b72=
Te6edf3MessageTb4b4b4(
Te6edf3text Tff7b72= Ta5d6ff"Ta5d6ffYoTa5d6ff"Tb4b4b4,
Te6edf3time Tff7b72= Ta5d6ff"Ta5d6ff10:10Ta5d6ff"Tb4b4b4,
Te6edf3fromLocal Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3RECEIVEDTb4b4b4,
Te6edf3snr Tff7b72= T79c0ff2.5fTb4b4b4,
Te6edf3rssi Tff7b72= T79c0ff9T79c0ff0Tb4b4b4,
Te6edf3hopsAway Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3uuid Tff7b72= T79c0ff2LTb4b4b4,
Te6edf3receivedTime Tff7b72= Te6edf3SystemTb4b4b4.Te6edf3currentTimeMillisTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3node Tff7b72= Te6edf3NodePreviewParameterProviderTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3minnieMouseTb4b4b4,
Te6edf3read Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3routingError Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3packetId Tff7b72= T79c0ff4T79c0ff5T79c0ff4T79c0ff5Tb4b4b4,
Te6edf3emojis Tff7b72=
Te6edf3listOfTb4b4b4(
Te6edf3ReactionTb4b4b4(
Te6edf3replyId Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3user Tff7b72= Te6edf3MeshProtosTb4b4b4.Te6edf3UserTb4b4b4.Te6edf3getDefaultInstanceTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3emoji Tff7b72= Ta5d6ff"Ta5d6ff\Ta5d6ffuD83DTa5d6ff\Ta5d6ffuDE42Ta5d6ff"Tb4b4b4,
Te6edf3timestamp Tff7b72= T79c0ff1LTb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ReactionTb4b4b4(
Te6edf3replyId Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3user Tff7b72= Te6edf3MeshProtosTb4b4b4.Te6edf3UserTb4b4b4.Te6edf3getDefaultInstanceTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3emoji Tff7b72= Ta5d6ff"Ta5d6ff\Ta5d6ffuD83ETa5d6ff\Ta5d6ffuDEE0Ta5d6ff"Tb4b4b4,
Te6edf3timestamp Tff7b72= T79c0ff1LTb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3replyId Tff7b72= Tff7b72nullTb4b4b4,
Te6edf3viaMqtt Tff7b72= Tff7b72falseTb4b4b4,
Tb4b4b4)
Tff7b72val Te6edf3receivedWithOriginalMessage Tff7b72=
Te6edf3MessageTb4b4b4(
Te6edf3text Tff7b72= Ta5d6ff"Ta5d6ffThis is a received message w/ original, this is a longer message to test next-lining.Ta5d6ff"Tb4b4b4,
Te6edf3time Tff7b72= Ta5d6ff"Ta5d6ff10:20Ta5d6ff"Tb4b4b4,
Te6edf3fromLocal Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3RECEIVEDTb4b4b4,
Te6edf3snr Tff7b72= T79c0ff2.5fTb4b4b4,
Te6edf3rssi Tff7b72= T79c0ff9T79c0ff0Tb4b4b4,
Te6edf3hopsAway Tff7b72= T79c0ff2Tb4b4b4,
Te6edf3uuid Tff7b72= T79c0ff2LTb4b4b4,
Te6edf3receivedTime Tff7b72= Te6edf3SystemTb4b4b4.Te6edf3currentTimeMillisTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3node Tff7b72= Te6edf3NodePreviewParameterProviderTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3minnieMouseTb4b4b4,
Te6edf3read Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3routingError Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3packetId Tff7b72= T79c0ff4T79c0ff5T79c0ff4T79c0ff5Tb4b4b4,
Te6edf3emojis Tff7b72= Te6edf3listOfTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3replyId Tff7b72= Tff7b72nullTb4b4b4,
Te6edf3originalMessage Tff7b72= Te6edf3receivedTb4b4b4,
Te6edf3viaMqtt Tff7b72= Tff7b72trueTb4b4b4,
Tb4b4b4)
Te6edf3AppTheme Tb4b4b4{
Te6edf3ColumnTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3backgroundTb4b4b4(Te6edf3MaterialThemeTb4b4b4.Te6edf3colorSchemeTb4b4b4.Te6edf3backgroundTb4b4b4)Tb4b4b4,
Te6edf3verticalArrangement Tff7b72= Te6edf3ArrangementTb4b4b4.Te6edf3spacedByTb4b4b4(T79c0ff8.Te6edf3dpTb4b4b4)Tb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3MessageItemTb4b4b4(
Te6edf3message Tff7b72= Te6edf3sentTb4b4b4,
Te6edf3node Tff7b72= Te6edf3sentTb4b4b4.Te6edf3nodeTb4b4b4,
Te6edf3selected Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3onStatusClick Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3isConnected Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3ourNode Tff7b72= Te6edf3sentTb4b4b4.Te6edf3nodeTb4b4b4,
Te6edf3showNodeInfo Tff7b72= Tff7b72trueTb4b4b4,
Tb4b4b4)

Te6edf3MessageItemTb4b4b4(
Te6edf3message Tff7b72= Te6edf3receivedTb4b4b4,
Te6edf3node Tff7b72= Te6edf3receivedTb4b4b4.Te6edf3nodeTb4b4b4,
Te6edf3selected Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3onStatusClick Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3isConnected Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3ourNode Tff7b72= Te6edf3sentTb4b4b4.Te6edf3nodeTb4b4b4,
Te6edf3showNodeInfo Tff7b72= Tff7b72trueTb4b4b4,
Tb4b4b4)

Te6edf3MessageItemTb4b4b4(
Te6edf3message Tff7b72= Te6edf3receivedWithOriginalMessageTb4b4b4,
Te6edf3node Tff7b72= Te6edf3receivedWithOriginalMessageTb4b4b4.Te6edf3nodeTb4b4b4,
Te6edf3selected Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3onStatusClick Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3isConnected Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3ourNode Tff7b72= Te6edf3sentTb4b4b4.Te6edf3nodeTb4b4b4,
Te6edf3showNodeInfo Tff7b72= Tff7b72trueTb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}

Served by rngit 1.5.1 - Generated in 0.1s